package com.quantum.reflection
{

	import com.quantum.util.Assert;


	/**
	 * Represents the property level reflection info.
	 */
	public class FieldObject extends AccessibleObject
	{
		/**
		 * The property type name.
		 */
		public var typeName:String;

		/**
		 * Whether this property is a variable.
		 */
		public var isVariable:Boolean;

		private var _access:String;

		/**
		 * The property access mode.
		 * The value is one of <code>ReflectionUtil.ACCESS_READONLY
		 * |ReflectionUtil.ACCESS_READWRITE|ReflectionUtil.ACCESS_WRITEONLY</code>
		 */
		public function get access():String
		{
			return _access;
		}

		/** @private */
		public function set access(value:String):void
		{
			if (value == AccessorAccess.ACCESS_READONLY ||//
				value == AccessorAccess.ACCESS_WRITEONLY||//
				value == AccessorAccess.ACCESS_READWRITE//
			)
			{
				_access=value;
			}
			else
			{
				Assert.assert(false, "Unexpected access string: " + value);
			}
		}

	}

}